\documentclass[11pt]{article} 

\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{latexsym}
\usepackage{ctex}
\usepackage{url}

\addtolength{\textheight}{4.5cm}
\addtolength{\voffset}{-2.4cm}
\addtolength{\textwidth}{3.7cm}
\addtolength{\hoffset}{-2.2cm}   

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% listings 是一个非常强大的 LaTeX 宏包，用于在文档中插入和格式化源代码。
%% 它提供了丰富的功能来高亮显示各种编程语言的语法，并且可以自定义代码的外观。
\usepackage{listings}
\usepackage{color}

% 设置列表的样式
\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92} %背景颜色为淡土色
%\definecolor{backcolour}{rgb}{1,1,1} %背景颜色为白色

\lstdefinestyle{mystyle}{
    backgroundcolor=\color{backcolour},   
    commentstyle=\color{codegreen},
    keywordstyle=\color{magenta},
    numberstyle=\tiny\color{codegray},
    stringstyle=\color{codepurple},
    basicstyle=\ttfamily\footnotesize,
    breakatwhitespace=false,         
    breaklines=true,                 
    captionpos=b,                    
    keepspaces=true,                 
    numbers=left,                    
    numbersep=5pt,                  
    showspaces=false,                
    showstringspaces=false,
    showtabs=false,                  
    tabsize=2
}

\lstset{style=mystyle}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\usepackage{titling}
\setlength{\droptitle}{-2cm} %文档标题上移 

\title{高等代数实践作业（选做） - 程序计算线性子空间的交与和}
\author{高等代数课程教学小组} 
%\date{2025年3月9日}
\date{\today}

\begin{document}

\maketitle

\begin{abstract}
使用R语言计算齐次线性方程组的解空间、线性子空间的交空间与和空间。
\end{abstract}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{安装R语言}
\begin{enumerate}
\item  浏览R语言官网，了解开发团队、安装程序、使用文档、各种函数库和学术期刊等。\\
\url{https://www.r-project.org}
\item  上海交大镜像下载R程序并安装。 \\
\url{https://mirrors.sjtug.sjtu.edu.cn/cran/}
\item  下载实用数值计算包 pracma并安装。安装一次即可。 \\ 
\url{https://mirrors.sjtug.sjtu.edu.cn/cran/web/packages/pracma/index.html}
\end{enumerate}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{例子1}
在线性空间 \( V= \mathbb{R}^4 \) 中，求由齐次线性方程组确定的解空间的基与维数：
\[
\begin{cases}
3x_1 + 2x_2 - 5x_3 + 4x_4 = 0, \\
3x_1 - x_2 + 3x_3 - 3x_4 = 0, \\
3x_1 + 5x_2 - 13x_3 + 11x_4 = 0.
\end{cases}
\]


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{例子1解答}
\begin{enumerate}

\item  用初等行变换将系数矩阵化为行最简形， 
\begin{eqnarray*}
A=\begin{pmatrix}
3&2&-5&4 \\ 
3&-1&3&-3 \\ 
3&5&-13&11 \\ 
\end{pmatrix}
\to 
\begin{pmatrix}
1&0&1/9&-2/9 \\ 
0&1&-8/3&7/3 \\ 
0&0&0&0 \\ 
\end{pmatrix}.
\end{eqnarray*}

\item  这样得到同解的齐次线性方程组
\[
\begin{cases}
x_1 + 0x_2 + \frac{1}{9}x_3 - \frac{2}{9}x_4 = 0, \\
0x_1 + x_2 - \frac{8}{3} x_3 + \frac{7}{3} x_4 = 0, \\
0x_1 + 0x_2 + 0x_3 + 0x_4 = 0.
\end{cases}
\]

\item  可见 $x_3,x_4$ 是自由未知量，分别取为 $(1,0)$ 与 $(0,1)$, 求出通解
\begin{eqnarray*}
\begin{pmatrix} x_1 \\ x_2 \\ x_3 \\ x_4 \end{pmatrix}
=x_3\begin{pmatrix} -1/9 \\ 8/3 \\ 1 \\ 0 \end{pmatrix}
+x_4\begin{pmatrix} 2/9 \\ -7/3 \\ 0 \\ 1 \end{pmatrix},
\end{eqnarray*}
其中 $x_3,x_4$ 是任意实数。

\item  取整数倍（不是必须的），选两个向量
\begin{eqnarray*}
\eta_1=\begin{pmatrix} -1 \\ 24 \\ 9 \\ 0 \end{pmatrix}, \,\, 
\eta_2=\begin{pmatrix} 2 \\ -21 \\ 0 \\ 9 \end{pmatrix},
\end{eqnarray*}
则 $\eta_1,\eta_2$ 是齐次线性方程组的基础解系，即解空间的一组基。解空间的维数是2. 

\item  使用R语言的pracma包的函数rref()求得行最简形；使用MASS包的函数fractions()将小数转化为分数；
函数c()得到一个数组；函数matrix()从一个数组得到一个矩阵。
\begin{lstlisting}[language=R]
> library(pracma) #每次打开R程序，都要载入。
> library(MASS)
> A=matrix(c(3,2,-5,4,3,-1,3,-3,3,5,-13,11),nrow=3,byrow=T)
> A
     [,1] [,2] [,3] [,4]
[1,]    3    2   -5    4
[2,]    3   -1    3   -3
[3,]    3    5  -13   11
> fractions(rref(A))
     [,1] [,2] [,3] [,4]
[1,]    1    0  1/9 -2/9
[2,]    0    1 -8/3  7/3
[3,]    0    0    0    0
>
\end{lstlisting}

\end{enumerate}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{例子2}
在 \( \mathbb{R}^4 \) 中，求由向量 \( \alpha_i (i=1,2,3,4) \) 生成的子空间的基与维数，其中
\[
\begin{cases}
\alpha_1 = (2,1,3,1), \\
\alpha_2 = (1,2,0,1), \\
\alpha_3 = (-1,1,-3,0), \\
\alpha_4 = (1,1,1,1). 
\end{cases}
\]

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{例子2解答}
\begin{enumerate}

\item  这个向量组生成的子空间，是这个向量组的线性组合得到的所有向量组成的集合，即
\[
L(\alpha_1, \alpha_2, \alpha_3, \alpha_4) = \{k_1\alpha_1+ k_2\alpha_2 + k_3\alpha_3 + k_4\alpha_4 \mid k_1,k_2,k_3,k_4\in\mathbb{R}\}. 
\]

\item  这个向量组的一个极大线性无关组，就是这个向量组生成的子空间的一组基。

\item  先将这些向量按照列向量方式写成一个矩阵，然后用初等行变换化为行最简形，
\begin{eqnarray*}
A= (\alpha_1^t, \alpha_2^t, \alpha_3^t, \alpha_4^t)
= \begin{pmatrix}
2&1&-1&1 \\ 
1&2&1&1 \\ 
3&0&-3&1 \\ 
1&1&0&1 \\ 
\end{pmatrix}
\to 
\begin{pmatrix}
1&0&-1&0 \\ 
0&1&1&0 \\ 
0&0&0&1 \\ 
0&0&0&0 \\ 
\end{pmatrix}. 
\end{eqnarray*}

\item  因此 $\alpha_1,\alpha_2,\alpha_4$ 是一个极大线性无关组。（且有 $\alpha_3=-\alpha_1+\alpha_2$.）子空间 $L(\alpha_1,\alpha_2,\alpha_3,\alpha_4)$ 的一组基可以取为 $\alpha_1,\alpha_2,\alpha_4$， 维数是3. 

\item  R语言的代码。其中函数matrix()的参数nrow=4表示得到的矩阵有4行，参数byrow=T表示将这个数组按行排列成矩阵。
\begin{lstlisting}[language=R]
> library(pracma) #每次打开R程序，都要载入。
> A=matrix(c(2,1,-1,1,1,2,1,1,3,0,-3,1,1,1,0,1),nrow=4,byrow=T)
> A
     [,1] [,2] [,3] [,4]
[1,]    2    1   -1    1
[2,]    1    2    1    1
[3,]    3    0   -3    1
[4,]    1    1    0    1
> fractions(rref(A))
     [,1] [,2] [,3] [,4]
[1,]  1    0   -1    0  
[2,]  0    1    1    0  
[3,]  0    0    0    1  
[4,]  0    0    0    0  
> 
\end{lstlisting}

\end{enumerate}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{例子3}
求由向量 \( \alpha_i \) 生成的子空间与由向量 \( \beta_i \) 生成的子空间的交空间的基和维数，其中
\[
\begin{cases}
\alpha_1 = (1,2,-1,-2), \\
\alpha_2 = (3,1,1,1), \\
\alpha_3 = (-1,0,1,-1), 
\end{cases}
\hspace{0.5cm}
\begin{cases}
\beta_1 = (2,5,-6,-5), \\
\beta_2 = (-1,2,-7,3).
\end{cases}
\]

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{例子3解答}
\begin{enumerate}

\item  这两个线性子空间的交集的一般元素可以写成 
\[
\xi = k_1\alpha_1+k_2\alpha_2+k_3\alpha_3 = m_1\beta_1 +m_2\beta_2. 
\]

\item  在第二个等号的左右移项，写成矩阵形式，可得下式，其中 $\theta$ 是零向量，
\begin{eqnarray*}
(\alpha_1, \alpha_2, \alpha_3, \beta_1, \beta_2) 
\begin{pmatrix}
k_1 \\ k_2 \\ k_3 \\ -m_1 \\ -m_2 \\ 
\end{pmatrix} =\theta. 
\end{eqnarray*}


\item  将这些向量写成列向量，可得矩阵形式的线性方程组
\begin{eqnarray*}
\begin{pmatrix}
1&3&-1&2&-1 \\ 
2&1&0&5&2 \\ 
-1&1&1&-6&-7 \\ 
-2&1&-1&-5&3 \\ 
\end{pmatrix}
\begin{pmatrix}
k_1 \\ k_2 \\ k_3 \\ -m_1 \\ -m_2 \\ 
\end{pmatrix} =
\begin{pmatrix}
0 \\ 0 \\ 0 \\ 0 \\ 
\end{pmatrix}. 
\end{eqnarray*}

\item  将系数矩阵用初等行变换化为行最简形，可得
\begin{eqnarray*}
\begin{pmatrix}
1&3&-1&2&-1 \\ 
2&1&0&5&2 \\ 
-1&1&1&-6&-7 \\ 
-2&1&-1&-5&3 \\ 
\end{pmatrix}
\to 
\begin{pmatrix}
1&0&0&3&0 \\ 
0&1&0&-1&0 \\ 
0&0&1&-2&0 \\ 
0&0&0&0&1 \\ 
\end{pmatrix}.
\end{eqnarray*}

\item  由此可得一个基础解系
\begin{eqnarray*}
\begin{pmatrix}
k_1 \\ k_2 \\ k_3 \\ -m_1 \\ -m_2 \\ 
\end{pmatrix} =
\begin{pmatrix}
-3 \\ 1 \\ 2 \\ 1 \\ 0 \\ 
\end{pmatrix}. 
\end{eqnarray*}

\item  因此交空间是1维的，一组基可取为
\begin{eqnarray*}
\xi &=& k_1\alpha_1+k_2\alpha_2+k_3\alpha_3 = m_1\beta_1 +m_2\beta_2 \\ 
&=& -3\alpha_1+\alpha_2+2\alpha_3 = -\beta_1. 
\end{eqnarray*}
即有 $L(\alpha_1, \alpha_2, \alpha_3)\cap L(\beta_1, \beta_2) = L(\beta_1)$. 

\item  注1: 记这两个子空间为 $V_1=L(\alpha_1, \alpha_2, \alpha_3)$ 与 $V_2=L(\beta_1, \beta_2)$. 根据维数公式可得，
\begin{eqnarray*}
\dim (V_1+V_2) &=& \dim V_1 + \dim V_2 - \dim (V_1\cap V_2) \\ 
 &=& 3+2-1=4.
\end{eqnarray*}
因此和空间 $V_1+V_2=\mathbb{R}^4$. 

\item  注2: 根据上述第4步的行最简形，可知
$\alpha_1, \alpha_2, \alpha_3, \beta_2$ 线性无关，而且 $\beta_1=3\alpha_1-\alpha_2-2\alpha_3$. 
因此和空间为 
\begin{eqnarray*}
V_1+V_2 &=& L(\alpha_1, \alpha_2, \alpha_3) + L(\beta_1, \beta_2) \\ 
&=& L(\alpha_1, \alpha_2, \alpha_3, \beta_1, \beta_2) \\ 
&=& L(\alpha_1, \alpha_2, \alpha_3, \beta_2). 
\end{eqnarray*}


\item  R语言的代码。
\begin{lstlisting}[language=R]
> library(pracma) #每次打开R程序，都要载入。
> A=matrix(c(1,3,-1,2,-1,2,1,0,5,2,-1,1,1,-6,-7,-2,1,-1,-5,3),nrow=4,byrow=T)
> A
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    3   -1    2   -1
[2,]    2    1    0    5    2
[3,]   -1    1    1   -6   -7
[4,]   -2    1   -1   -5    3
> rref(A)
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    3    0
[2,]    0    1    0   -1    0
[3,]    0    0    1   -2    0
[4,]    0    0    0    0    1
> 
\end{lstlisting}


\end{enumerate}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{习题}
\begin{enumerate}
\item  设 $V_1 = L(\alpha_1, \alpha_2)$ 与 $V_2=L(\beta_1,\beta_2)$ 分别是由下述两个向量组生成的子空间，
\[
\begin{cases}
\alpha_1 = (1,2,1,0), \\
\alpha_2 = (-1,1,1,1),
\end{cases}
\hspace{0.5cm}
\begin{cases}
\beta_1 = (2,-1,0,1), \\
\beta_2 = (1,-1,3,7).
\end{cases}
\]
\begin{enumerate}
\item  求和空间 $V_1+V_2$ 的基与维数。
\item  求交空间 $V_1\cap V_2$ 的基与维数。
\end{enumerate}

\item  答案：
和空间 $V_1+V_2=L(\alpha_1,\alpha_2,\beta_1)$, 维数为3. 
交空间 $V_1\cap V_2=L(\alpha_1-4\alpha_2)$, 维数为1. 

%\begin{lstlisting}[language=R]
%> library(pracma) #每次打开R程序，都要载入。
%> A=matrix(c(1,2,1,0, -1,1,1,1, 2,-1,0,1, 1,-1,3,7),nrow=4,byrow=F)
%> A
%     [,1] [,2] [,3] [,4]
%[1,]    1   -1    2    1
%[2,]    2    1   -1   -1
%[3,]    1    1    0    3
%[4,]    0    1    1    7
%> rref(A)
%     [,1] [,2] [,3] [,4]
%[1,]    1    0    0   -1
%[2,]    0    1    0    4
%[3,]    0    0    1    3
%[4,]    0    0    0    0
%> 
%\end{lstlisting}


\end{enumerate}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}


